====== Neovim ======

Si avec [[:bionic]], il suffisait d’installer le paquet //vim-gnome// pour avoir l’option //presse-papier// (clipboard), sous [[:jammy]], il faut soit installer apt:vim-gtk3 soit neovim. Ce dernier apporte d’autre avantages.

===== Installation =====

==== Via les dépôts standard ====
Neovim est présent dans les dépôts standard :\\
<code bash>
sudo apt install neovim
</code>
mais une fois encore dans une version pas toujours très à jour ([[https://packages.ubuntu.com/search?neovim|exemple]] : 0.6 sous [[:jammy]] alors que la 0.8 est stable et la 0.9 disponible en version //dev//)

==== Via un paquet ====
Cette solution permet de disposer de la dernière version stable ou en développement.\\
Elles sont disponible via la page [[https://github.com/neovim/neovim/releases]] en [[:cli|CLI]] :  
<code bash>wget https://github.com/neovim/neovim/releases/download/v0.8.3/nvim-linux64.deb</code>

Si vous avez une ancienne version des dépôts standard, désinstallez-la au préalable avec :
<code bash>sudo apt autoremove neovim</code>
Si vous êtes sûr de votre basculement vers neovim, vous pouvez supprimer vim :
<code bash>sudo apt remove vim-common</code>
ce qui permettra de créer les [[#alias]] de nos commandes usuelles…

Puis lancer l'installation du paquet téléchargé :
<code bash>
sudo dpkg -i nvim-linux64.deb
</code>

==== alias et vimdiff avec git ====
Vous voudrez sans doute continuer à appeler votre éditeur préféré via les commandes //vi//, //vim// et //vimdiff//?\\
Pour cela, définir les [[:alias]] :\\
<file - .bash_aliases>
alias vi='nvim'
alias vim='nvim'
alias vimdiff='nvim -d '
</file>

Si vous utilisiez //vimdiff// (qui n'est autre qu'un alias vers //vim -d//) avec git, il suffit de le spécifier dans votre fichier de configuration de [[:git]] :
<file - .gitconfig>
[diff]
	tool = nvimdiff  
</file>

Pour l'édition des tâches [[:CRON]], il suffit d'exécuter ((src: https://unix.stackexchange.com/questions/311105/permanently-setting-vim-as-the-editor-for-crontab)):
<code bash>
echo 'export EDITOR=nvim' >> ~/.bashrc
</code>
===== Configuration =====
Le premier fichier de configuration lu par neovim est le fichier ~/.config/nvim/init.vim
Par défaut, celui-ci //source// ~/.vimrc
j'ai remplacé par source ~/.vim/vimrc

Dans ~/.vim/vimrc, ajout de la ligne d’état (//statusline//, //ruler//), notamment pour avoir le nom du fichier et le numéro de colonne du curseur :
<code>
set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P
</code>
<note important>Ces fichiers n'existent si [[:vim]] n'avait pas été préalablement installé, auquel cas il faut les créer !</note>